﻿Imports System
Imports System.Collections.Generic
Imports ATS.Business.Entities
Imports System.Collections.ObjectModel

Public Interface ISubmitterUserProcess

#Region "Assets"
    Function LoadAssets(ByVal employeeID As String) As List(Of MainAssetsTable)
    Function CreateAsset(_AssetDetails As MainAssetsTable) As MainAssetsTable
    Function GetAssetDetails(_searchAsset As String) As MainAssetsTable
    Function GetAllAsset() As List(Of MainAssetsTable)
    Function UpdateAssetDetails(_AssetDetails As MainAssetsTable) As MainAssetsTable
    Sub DeleteAsset(_AssetDetails As MainAssetsTable)
#End Region

#Region "Users"
    Function AuthenticateUser(ByVal username As String, ByVal password As String) As AuthenticationResult
    Function VerifyHash(encryptedPassword As String, hash As String, salt As String) As Boolean
    Function GetUserDetails(ByVal username As String) As UserTable
    Function IObservableListGetAllUsers() As IObserveUserTable
    Function GetAllUsers() As List(Of UserTable)
    Function ChangePassword(userDetails As UserTable) As UserTable
    Function CreateNewUser(userDetails As UserTable) As UserTable
    Function UpdateUser(userDetails As UserTable) As UserTable
    Sub DeleteUser(userDetails As UserTable)
    Function UserExists(username As String) As Boolean
#End Region

#Region "Account Policy"
    Function AccountPolicyValues() As admPasswordConfig
    Function UpdateAccountPolicy(accountPolicyValue As admPasswordConfig) As admPasswordConfig
#End Region

#Region "Company Detail"
    Function CreateNewCompanyDetail(ByVal companyDetails As CompanyDetail) As CompanyDetail
    Function ReadCompanyDetail() As CompanyDetail
    Function UpdateCompanyDetail(ByVal companyDetails As CompanyDetail) As CompanyDetail
#End Region

#Region "RFID Scan History"
    Sub CreateRFIDScanHistory(_RFIDScanHistory As RFIDScanHistory, Optional _CreateAssetData As Boolean = False, Optional _CreatedBy As String = Nothing)
    Function ReadRFIDScanHistoryByRFIDNumber(_RFIDNumber As String, Optional _RFIDScanDate As DateTime = Nothing) As List(Of RFIDScanHistory)
    Function ReadRFIDScanHistoryByScanDate(_scanDateFrom As Date, _scanDateTo As Date) As List(Of RFIDScanHistory)
#End Region

#Region "Category"
    Function CreateCategory(_category As Category) As Category
    Function ReadCategory(_category As String) As Category
    Function ReadAllCategories() As List(Of Category)
    Function GetAllCategoryClass() As List(Of String)
    Function UpdateCategoryRecord(_category As Category) As Category
    Sub DeleteCategory(_category As Category)
#End Region

#Region "Location"
    Function CreateLocation(_location As Location) As Location
    Function ReadLocation(_location As String) As Location
    Function ReadAllLocations() As List(Of Location)
    Function UpdateLocationRecord(_location As Location) As Location
    Sub DeleteLocation(_location As Location)
#End Region

#Region "Person"
    Function CreatePerson(_personDetails As Person) As Person
    Function GetPersonDetails(_searchPerson As String) As Person
    Function GetAllPerson() As List(Of Person)
    Function UpdatePersonDetails(_personDetails As Person) As Person
    Sub DeletePerson(_personDetails As Person)
#End Region

#Region "Department"
    Function CreateDepartment(_DepartmentDetails As Department) As Department
    Function GetDepartmentDetails(_searchDepartment As String) As Department
    Function GetAllDepartment() As List(Of Department)
    Function GetDepartmentList() As List(Of String)
    Function UpdateDepartmentDetails(_DepartmentDetails As Department) As Department
    Sub DeleteDepartment(_DepartmentDetails As Department)
#End Region


#Region "Disposed Asset"
    Function GetDisposalMethods() As List(Of String)
#End Region
#Region "Depreciation List"
    Function DepreciationList() As List(Of DepreciationClass)
#End Region
End Interface


